package com.jxj.study.util;

import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;

/**
 * 图片识别
 */
public class ImageIdentify {

    private static final Tesseract tesseract;

    static {
        tesseract = new Tesseract();  // 创建Tesseract对象
        tesseract.setDatapath("E:\\workspace\\study\\mainModel\\src\\main\\resources\\tessdata"); // 设置tessdata的路径，例如："C:/Program Files/Tesseract-OCR/tessdata"
        tesseract.setLanguage("chi_sim+eng"); // 设置语言，这里包括了简体中文和英文，可以根据需要调整
    }

    public static String recognizeFileText(File imageFile) {
        try {
            return tesseract.doOCR(imageFile); // 执行OCR，返回识别结果
        } catch (TesseractException e) {
            e.printStackTrace();
            return ""; // 错误处理
        }
    }

    public static String recognizeImageText(BufferedImage imageFile, Rectangle rectangle) {
        try {
            if (rectangle != null) {
                return tesseract.doOCR(imageFile,rectangle);
            } else {
                return tesseract.doOCR(imageFile);
            }
        } catch (TesseractException e) {
            e.printStackTrace();
            return ""; // 错误处理
        }
    }
}
